/*****************************************************************************/
/* File: OptionsState.h                                                      */
/* Author: rszulgo                                                           */
/*                                                                           */
/* Description:																 */
/* Class for the submenu of 'New Game' for Options							 */
/*****************************************************************************/
#pragma once
#include "State.h"
#include "Font.h"
#include "GameState.h"
#include "TextControl.h"
#include "Picture.h"
#include <vector>

class CVisualMenuState : public CState
{
public:
	~CVisualMenuState(void);

	void getKeyPressed();
	void Draw();
	void EnterState();

	static CVisualMenuState* GetInstance(CStateManager* pManager, CRenderer* pRenderer, HDC hDC, HWND hWnd);

protected:
	CVisualMenuState(CStateManager* pManager, CRenderer* pRenderer, HDC hDC, HWND hWnd);

private:
	// The user went up or down in 
	// the menu
	void SelectionUp();
	void SelectionDown();

	// The user validated the current selection
	void SelectionChosen();

	// add an item to the menu list
	int AddItem(CTextControl* pTextControl);

	// Index of the current selected menu item
	int m_iCurrentSelection;

	// dynamic camera enable/disable
	bool m_bDynamicCamera;

	// The background image
	TPicturePtr m_pBackgroundImg;

	//vector of menu items
	vector<CTextControl*> m_vMenuItems;
};